// 四个表单
$('#planForm').show();// 创建计划
var planFormData = {};// 创建计划表单数据	
var dmPlanPO = {};// 计划对象
var dmStrategyPO = {};// 策略数据
$('#srcTableForm').form().show();// 源数据
var srcTableFormData = {};// 源数据表单数据
$('#targetTableForm').form().show();// 目标数据
var targetTableFormData = {};// 目标数据表单数据
$('#conditionForm').form().show();// 配置条件
var conditionFormData = {};// 配置条件表单数据

var dmPlanId = plan||0;
var dmStrategyId = 0;
// var isDraft = false;// 该策略是不是残缺的草稿箱状态
var tableNum;
var compareData = {};
var staffId = session.user.id;
var isEdit = 0;
var actAll;
if (act == "edit") {
	isEdit = 1;
	actAll = "edit";
}
// 搜索查询的表
var isSearchTable = false;

var delSubTableIds = [];

// 原先的归档条件
var oldSelectCondition = "";

// 计划是否已经提交
var planSubmit = false;
// 计划是否已经保存草稿
// var planDraft = false;
// 策略组号
var dmStrategyGroupNum = 0;

// 源数据配置界面是否已经保存草稿
// var srcTableDraft = false;
// 主从表字段关系是否配置完成
var subTableIsOK = true;

// 表名长度是否符合（不超过50字符）
var tableNameIsOK = [];

// 字段映射是否配置完成
var columnsRelationsIsOK = [];
// 字段映射数据
var targetColMaps = [];

// 脚本验证是否已经通过
var scriptVerifyIsOK = false;

// 操作类型是否新增了备份
var isAddBack = false;
// 原来的操作类型
var oldOperType;

// 各个策略的目标表的信息是否完整，用于完成提交时，判断目标表是否全都配置完整
// 0--不完整
// 1---完整
var targetTableIsOKs = [];
// 当前正在编辑的策略ID
// var onClickNodeTid;

// // 策略树对象
// var dmStrategyTreeObj;

// 目标信息
var dmTargetTablePOList = [];

// 源表索引
var diiPOList_src;
// 从表索引
var diiPOList_sub = [];

$(document).ready(function() {
	// 隐藏显示底部按钮
	if($('#firstStep').attr("class").indexOf("hidden") < 0){
		$('#button-prov').addClass("hidden");
		$('#button-next').addClass("hidden");
		$('#button-add-strategy').addClass("hidden");
		$('#button-submit').addClass("hidden");
	}
	
	// 底部按钮框
	// 保存草稿 按钮事件
	$('#button-save-draft').click(function() {
		// 判断当前是哪一步
		// 第一步
		// if($('#firstStep').attr("class").indexOf("hidden") < 0){
		// 	// 表单数据-计划信息
		// 	getPlanFormData();
		// 	if(planFormData.planName == null || planFormData.planName == ""){
		// 		fish.toast('warn', '请填写计划名称');
		// 		return;
		// 	}
		// 	$.blockUI({message : "数据提交中,请稍候..."});
		// 	$.ajax({
		// 		url : webRoot + 'baseconfig/dmplan/addForDraft.do',
		// 		type : 'POST',
		// 		async : true,
		// 		data : planFormData
		// 	}).done(function(serverData, textStatus, jqXHR) {
		// 		if(serverData.dmPlanId == 0){
		// 			fish.toast('warn', '计划名称已经存在，请更换一个计划名称');
		// 		}else{
		// 			dmPlanId = serverData.dmPlanId;
		// 			planDraft = true;
		// 			if (serverData.success == false) {
		// 				fish.toast('error', serverData.msg);
		// 			} else {
		// 				fish.toast('success', '操作成功！');
		// 			}
		// 		}
		// 		return;
		// 	}).fail(function() {
		// 		fish.toast('error', '网络连接失败！');
		// 	}).always(function() {
		// 		$.unblockUI();
		// 	});
		// 	return;
		// }
		// // 第二步
		// if($('#secondStep').attr("class").indexOf("hidden") < 0){
		// 	// 如果是单表归档，不需要验证从表的输入
		// 	switch ($("input[name=archiveType]:checked").attr("value")) {
		// 	case "0":// 单表
		// 		$("input[name=subTableDbLinkId_" + seqTable + "]").attr('data-rule','').resetValid();
		// 		subTableIsOK = true;
		// 		break;
		// 	case "1":// 关联
		// 		$('input[name=subTableDbLinkId_' + seqTable + ']').attr('data-rule','required');
		// 		break;
		// 	default:
		// 		break;
		// 	}
		// 	// 表单数据-源数据信息
		// 	getSrcTableFormData();
		// 	planFormData.dmStrategyId = dmStrategyId;
		// 	if(!subTableIsOK){
		// 		fish.toast('warn', '主从表关联字段未填写');
		// 		return;
		// 	}
		// 	$.blockUI({message : "数据提交中,请稍候..."});
		// 	$.ajax({
		// 		url : webRoot + 'baseconfig/dmplan/addForDraft.do',
		// 		type : 'POST',
		// 		async : true,
		// 		data : planFormData
		// 	}).done(function(serverData, textStatus, jqXHR) {
		// 		if(serverData.dmPlanId == 0){
		// 			fish.toast('warn', '存在相同的计划名称，请重新输入');
		// 			return;
		// 		}
		// 		$.blockUI({message : "数据提交中,请稍候..."});
		// 		$.ajax({
		// 			url : webRoot + 'baseconfig/dmsrctable/addForDraft.do',
		// 			type : 'POST',
		// 			async : true,
		// 			data: _.extend(srcTableFormData, planFormData)
		// 		}).done(function(serverData, textStatus, jqXHR) {
		// 			dmStrategyId = serverData.dmStrategyId;
		// 			$('input[name="sourceDataId"]').val(serverData.dmSrcTablePO.sourceDataId);
		// 			srcTableDraft = true;
		// 			if (serverData.success == false) {
		// 				fish.toast('error', serverData.msg);
		// 			} else {
		// 				fish.toast('success', '操作成功！');
		// 			}
		// 			return;
		// 		}).fail(function() {
		// 			fish.toast('error', '网络连接失败！');
		// 		}).always(function() {
		// 			$.unblockUI();
		// 		});
		// 	}).fail(function() {
		// 		fish.toast('error', '网络连接失败！');
		// 	}).always(function() {
		// 		$.unblockUI();
		// 	});
		// 	return;
		// }
		// // 第三步
		// if($('#thirdStep').attr("class").indexOf("hidden") < 0){
		// 	$('#targetTableForm').validator({
		// 		timely:0,
		// 		ignore:':hidden'//任何不可见的元素，都不作验证
		// 	});
		// 	// 验证输入值的正确性
		// 	if ($("#targetTableForm").isValid()) {
		// 		// 表单数据-目标数据信息
		// 		getTargetTableFormData();
		// 		srcTableFormData.expDate = planFormData.expDate;
		// 		planFormData.dmStrategyId = dmStrategyId;
		// 		$.blockUI({message : "数据提交中,请稍候..."});
		// 		$.ajax({
		// 			url : webRoot + 'baseconfig/dmplan/addForDraft.do',
		// 			type : 'POST',
		// 			async : true,
		// 			data : planFormData
		// 		}).done(function(serverData, textStatus, jqXHR) {
		// 			if(serverData.dmPlanId == 0){
		// 				fish.toast('warn', '存在相同的计划名称，请重新输入');
		// 				return;
		// 			}
		// 			$.blockUI({message : "数据提交中,请稍候..."});
		// 			$.ajax({
		// 				url : webRoot + 'baseconfig/dmtargettable/addForDraft.do',
		// 				type : 'POST',
		// 				async : true,
		// 				data : _.extend(srcTableFormData, targetTableFormData, planFormData)
		// 			}).done(function(serverData, textStatus, jqXHR) {
		// 				dmStrategyId = serverData.dmStrategyId;
		// 				// 配置目标表的ID和表名
		// 				for(var i = 0; i < tableNum; i++){
		// 					var j = i + 1;
		// 					$('input[name="' + targetTableId_name + j + '"]').val(serverData.dmTargetTablePOList[i].targetDataId);
		// 				}
		// 				if (serverData.success == false) {
		// 					fish.toast('error', serverData.msg)
		// 				} else {
		// 					fish.toast('success', '操作成功！')
		// 				}
		// 				for(var i = 0; i < serverData.dmTargetTablePOList.length; i++){
		// 					var j = i + 1;
		// 					$('input[name="' + targetTableId_name + j + '"]').val(serverData.dmTargetTablePOList[i].targetDataId);
		// 				}
		// 			}).fail(function() {
		// 				fish.toast('error', '网络连接失败！');
		// 			}).always(function() {
		// 				$.unblockUI();
		// 			});
		// 		}).fail(function() {
		// 			fish.toast('error', '网络连接失败！');
		// 		}).always(function() {
		// 			$.unblockUI();
		// 		});
		// 	}else{
		// 		setTimeout(function(){$('#targetTableForm').validator('cleanUp')},3000);
		// 	}
		// }
		// 第四步
		if($('#fourthStep').attr("class").indexOf("hidden") < 0){
			// 脚本验证是否通过
			if(!scriptVerifyIsOK){
				fish.toast('warn', '脚本验证不通过，请重新填写归档条件');
				return;
			}
			$('#conditionForm').validator({
				timely:0,
				ignore:':hidden'//任何不可见的元素，都不作验证
			});
			// 验证输入值的正确
			if ($("#conditionForm").isValid()) {
			// 表单数据
			conditionFormData = $("#conditionForm").form("value");
			srcTableFormData.expDate = planFormData.expDate;
			getTargetTableFormData();
			$.blockUI({message : "正在保存草稿,请稍候..."});
			$.ajax({
				url : webRoot + 'baseconfig/dmplan/addOfDraft.do',
				type : 'POST',
				async : true,
				data : _.extend(planFormData, srcTableFormData, targetTableFormData, conditionFormData)
			}).done(function(serverData, textStatus, jqXHR) {
				if(serverData.dmPlanId == 0){
					fish.toast('warn', '存在相同的计划名称，请重新输入');
					return;
				}
				// $.blockUI({message : "数据提交中,请稍候..."});
				// $.ajax({
				// 	url : webRoot + 'baseconfig/dmsrctable/addForDraftAtFourthStep.do',
				// 	type : 'POST',
				// 	async : true,
				// 	data : _.extend(srcTableFormData, targetTableFormData, conditionFormData)
				// }).done(function(serverData, textStatus, jqXHR) {
					if (serverData.success == false) {
						fish.toast('error', serverData.msg);
					} else {
						fish.toast('success', '保存草稿成功！');
						// 把界面关掉或者跳到别的地方
						// 重置字段映射是否配置完成标识
						columnsRelationsIsOK = [];
						// 隐藏显示步骤div
						$('#fourthStep').addClass("hidden");
						$('#fifthStep').removeClass("hidden");
						$('#draft_success_img').removeClass("hidden");
						$('#add_success_img').addClass("hidden");

						$('#button-plan-grid-draft').removeClass("hidden");
						$('#button-plan-grid').addClass("hidden");

						$('.step-ing .st5').addClass('st5On');
						// 隐藏显示底部按钮
						$('#btm-actBtnGroup').addClass("hidden");
						isAddBack = false;
						planSubmit = false;
					}
				// 把各种ID回绑前台	
				dmStrategyId = serverData.dmStrategyId;
				planFormData.dmStrategyId = dmStrategyId;
				srcTableFormData.dmStrategyId = dmStrategyId;
				targetTableFormData.dmStrategyId = dmStrategyId;

				// }).fail(function() {
				// 	fish.toast('error', '网络连接失败！');
				// }).always(function() {
				// 	$.unblockUI();
				// });
			}).fail(function() {
				fish.toast('error', '网络连接失败！');
			}).always(function() {
				$.unblockUI();
			});
			}else{
				setTimeout(function(){$('#conditionForm').validator('cleanUp')},3000);
			}
			return;
		}
	});
	
	// 上一步 按钮事件
	$('#button-prov').click(function() {
		// 判断当前是哪一步
		if($('#secondStep').attr("class").indexOf("hidden") < 0){
			// 判断是编辑还是新增
			if(act == "edit"){
				// 清空第二步的表单信息
				resetSrcTableForm();
				// 清空第三步的表单信息
				resetTargetTableForm();
				// 清空第四步的表单信息
				$('textarea[name="selectCondition"]').text('');
				// 刷新策略树
				$.fn.zTree.init($("#tree"), setting(dmPlanId));
				// 隐藏显示步骤div
				$('#secondStep').addClass("hidden");
				$('#firstStep').removeClass("hidden");
				showSubmitOnPlan(planSubmit);
				// 隐藏显示底部按钮
				$('#button-prov').addClass("hidden");
				$('#button-next').addClass("hidden");
				return;
			}
			// if(!srcTableDraft){
			// 	fish.confirm("策略还未配置完成，返回第一步会清空正在配置的策略，确定返回?").result.then(function(){
			// 		$.fn.zTree.init($("#tree"), setting(dmPlanId));
			// 		// 隐藏显示步骤div
			// 		$('#secondStep').addClass("hidden");
			// 		$('#firstStep').removeClass("hidden");
			// 		showSubmitOnPlan(planSubmit);
			// 		$('.step-ing .st2').removeClass('st2On');
			// 		// 隐藏显示底部按钮
			// 		$('#button-prov').addClass("hidden");
			// 		$('#button-next').addClass("hidden");
			// 	});
			// } else {
				$.fn.zTree.init($("#tree"), setting(dmPlanId));
				// 隐藏显示步骤div
				$('#secondStep').addClass("hidden");
				$('#firstStep').removeClass("hidden");
				showSubmitOnPlan(planSubmit);
				$('.step-ing .st2').removeClass('st2On');
				// 隐藏显示底部按钮
				$('#button-prov').addClass("hidden");
				$('#button-next').addClass("hidden");
			// }
			return;
		}
		if($('#thirdStep').attr("class").indexOf("hidden") < 0){
			isFirst = true;
			// 判断是编辑还是新增
			// if(act == "edit" && !isAddBack && !isDraft){
			if(act == "edit" && !isAddBack){
				// 隐藏显示步骤div
				$('#thirdStep').addClass("hidden");
				$('#secondStep').removeClass("hidden");
				$('.step-ing .st3').removeClass('st3On');
				return;
			}
			// 提示是否返回上一步
			fish.confirm("返回上一步会清空当前已配置好的目标数据，确定返回?").result.then(function(){
				// 重置第三步
				resetTargetTableForm();
				// 隐藏显示步骤div
				$('#thirdStep').addClass("hidden");
				$('#secondStep').removeClass("hidden");
				$('.step-ing .st3').removeClass('st3On');
			});
			return;
		}
		if($('#fourthStep').attr("class").indexOf("hidden") < 0){
			// 隐藏显示步骤div
			$('#fourthStep').addClass("hidden");
			$('.step-ing .st4').removeClass('st4On');
			$('.step-ing .st3').removeClass('st3On');
			// 隐藏显示底部按钮
			$('#button-save-draft').addClass("hidden");
			$('#button-add-strategy').addClass("hidden");
			$('#button-submit').addClass("hidden");
			$('#button-next').removeClass("hidden");
			if(planFormData.operType != 0){// 没有备份环节
				$('#secondStep').removeClass("hidden");
			}else{
				$('#thirdStep').removeClass("hidden");
			}
			return;
		}
	});
	
	// 下一步 按钮事件
	$('#button-next').click(function() {
		// 判断当前是哪一步
		if($('#secondStep').attr("class").indexOf("hidden") < 0){
			// 如果是单表归档，不需要验证从表的输入
			switch ($("input[name=archiveType]:checked").attr("value")) {
			case "0":// 单表
				$("input[name=subTableDbLinkId_" + seqTable + "]").attr('data-rule','').resetValid();
				subTableIsOK = true;
				break;
			case "1":// 关联
				$('input[name=subTableDbLinkId_' + seqTable + ']').attr('data-rule','required');
				break;
			default:
				break;
			}
			$('#srcTableForm').validator({
				timely:0,
				ignore:':hidden'//任何不可见的元素，都不作验证
			});
			// 验证输入值的正确性
			if($('select[name="keyColumn"]').multiselect().val() == null){
				fish.toast('warn', '关键字段不能为空');
				return;
			}
			if ($("#srcTableForm").isValid()) {
				// 判断表名是否超过50字符
				for(var k in tableNameIsOK){
					if(!tableNameIsOK[k]){
						fish.toast('warn', '表名不能超过50个字符');
						return;
					}
				}
				// 判断主从表有没有相同的表
				if(!getSrcTableFormData()){
					fish.toast('warn', '存在相同的源表，请重新配置');
					return;
				}
				var subTables = getSrcTableFormData();
				// 判断是不是需要备份
				if(planFormData.operType != 0){
					// 隐藏显示步骤div
					$('#fourthStep').removeClass("hidden");
					$('#secondStep').addClass("hidden");
					$('.step-ing .st3').addClass('st3On');
					$('.step-ing .st4').addClass('st4On');
					// 隐藏显示底部按钮
					$('#button-next').addClass("hidden");
					$('#button-add-strategy').removeClass("hidden");
					$('#button-submit').removeClass("hidden");
					$('#button-save-draft').removeClass("hidden");
					if(dmStrategyPO.state=='00A'){
						$('#button-save-draft').addClass("hidden");
					}
				}else{
					// 判断是编辑还是新增
					// if(act == "edit" && !isDraft){// 编辑
					if(act == "edit"){// 编辑
						// 比较源表
						var flag = true;
						if(targetColMaps.length != tableNum){
							flag = false;
						}
						if(flag){
							for(var k in targetColMaps){
								if(targetColMaps[k]==false){
									flag = false;
									break;
								}
							}
						}
						if(!flag){
							if(targetColMaps[0] == false){// 主表
								var tableName = $('input[name="tableName"]').val();
								$('#targetTable tr:eq(0)').find('td:eq(0)').text($.parseJSON(tableName)[0].value);
								$('#targetTable tr:eq(0)').find('td:eq(1)').find('input[name="targetTableDbLinkId_1"]').val('').attr('vId','');
								$('#targetTable tr:eq(0)').find('td:eq(1)').find('input[name="targetTableName_1"]').plancombobox({value: [{type:'table',value:'table_name'}]});
							}
							if(!subTableIsOK){
								fish.toast('warn', '主从表关联字段未填写');
								return;
							}
							if($('#targetTable tr:last').length == 0){
								for(var k in subTables){
									if(subTables[k].isDelete == 1){// 删除的从表
										tableNum--;
									}
								}
								// 主表
								var tableName = $('input[name="tableName"]').val();
								table = {srcTableName : $.parseJSON(tableName)[0].value, sourceDataId : 0, targetDataId : 0,
										tableNames : [{type:'table',value:'table_name'}], srcDbLinkId: $('input[name="dbLinkId"]').attr("vId"), 
										srcDbUserName: $('input[name="dbLinkId"]').val(),
										columnsRelationPOList : "",	hasOkColumnsRelationPOLis : "", canDataRecovery: 0};
								// if(!isDraft){
									newTargetTable(table, 1);
								// }
								// 从表
								if(srcTableFormData.archiveType == 1){
									for(var i = 0; i < tableNum - 1; i++){
										subTables[i].sourceDataId = 0;
										subTables[i].targetDataId = 0;
										subTables[i].srcDbLinkId = subTables[i].dbLinkId;
										subTables[i].srcDbUserName = subTables[i].subDbUserName;
										subTables[i].srcTableName = $.parseJSON(subTables[i].subTableName)[0].value;
										subTables[i].tableNames = [{type:'table',value:'table_name'}];
										subTables[i].columnsRelationPOList = "";
										subTables[i].hasOkColumnsRelationPOLis = "";
										subTables[i].canDataRecovery = 0;
										newTargetTable(subTables[i], i + 2);
									}
								}
							}else{
								var lasti = parseInt($('#targetTable tr:last').attr('id').split('target_')[1]);
								for(var i = 1;i < targetColMaps.length; i++){
									if(targetColMaps[i] == false){
										if($('#targetTable tr:eq('+ i +')').length > 0){
											$('#targetTable tr:eq('+ i +')').find('td:eq(0)').text($.parseJSON(subTables[i-1].subTableName)[0].value);
											var j = i+1;
											$('#targetTable tr:eq('+ i +')').find('td:eq(0)').append("<input type='text' value='" + subTables[i-1].sourceDataId + "' name='srcTableId_" + j + "' class='form-control hidden'/> ");
											$('#targetTable tr:eq('+ i +')').find('td:eq(0)').append("<input type='text' value='" + subTables[i-1].dbLinkId + "' name='srcTableDbLinkId_" + j + "' class='form-control hidden'/> ");
											$('#targetTable tr:eq('+ i +')').find('td:eq(0)').append("<input type='text' value='" + subTables[i-1].subDbUserName + "' name='srcTableDbUserName_" + j + "' class='form-control hidden'/> ");
											$('#targetTable tr:eq('+ i +')').find('td:eq(1)').find('.database-treecombo').val('').attr('vId','');
											$('#targetTable tr:eq('+ i +')').find('td:eq(1)').find('.tablename-plancombo').plancombobox({value: [{type:'table',value:'table_name'}]});
										}else{
											subTables[i-1].sourceDataId = 0;
											subTables[i-1].targetDataId = 0;
											subTables[i-1].srcDbLinkId = subTables[i-1].dbLinkId;
											subTables[i-1].srcDbUserName = subTables[i-1].subDbUserName;
											subTables[i-1].srcTableName = $.parseJSON(subTables[i-1].subTableName)[0].value;
											subTables[i-1].tableNames = [{type:'table',value:'table_name'}];
											subTables[i-1].columnsRelationPOList = "";
											subTables[i-1].hasOkColumnsRelationPOLis = "";
											subTables[i-1].canDataRecovery = 0;
											newTargetTable(subTables[i-1], lasti+i);
											tableNum++;
										}
									}
								}
							}
						}
						// 隐藏显示步骤div
						$('#secondStep').addClass("hidden");
						$('#thirdStep').removeClass("hidden");
						$('.step-ing .st3').addClass('st3On');
						// 隐藏显示底部按钮
						$('#button-add-strategy').addClass("hidden");
						return;
					} else {
						if(!subTableIsOK){
							fish.toast('warn', '主从表关联字段未填写');
							return;
						}
						for(var k in subTables){
							if(subTables[k].isDelete == 1){// 删除的从表
								tableNum--;
							}
						}
						// 主表
						var tableName = $('input[name="tableName"]').val();
						table = {srcTableName : $.parseJSON(tableName)[0].value, sourceDataId : 0, targetDataId : 0,
								tableNames : [{type:'table',value:'table_name'}], srcDbLinkId: $('input[name="dbLinkId"]').attr("vId"), 
								srcDbUserName: $('input[name="dbLinkId"]').val(),
								columnsRelationPOList : "",	hasOkColumnsRelationPOLis : "", canDataRecovery: 0};
						// 没有目标表数据，需要新增目标信息
						if(dmTargetTablePOList.length == 0){
							// 主表
							newTargetTable(table, 1);
							// 从表
							if(srcTableFormData.archiveType == 1){
								for(var i = 0; i < tableNum - 1; i++){
									subTables[i].sourceDataId = 0;
									subTables[i].targetDataId = 0;
									subTables[i].srcDbLinkId = subTables[i].dbLinkId;
									subTables[i].srcDbUserName = subTables[i].subDbUserName;
									subTables[i].srcTableName = $.parseJSON(subTables[i].subTableName)[0].value;
									subTables[i].tableNames = [{type:'table',value:'table_name'}];
									subTables[i].columnsRelationPOList = "";
									subTables[i].hasOkColumnsRelationPOLis = "";
									subTables[i].canDataRecovery = 0;
									newTargetTable(subTables[i], i + 2);
								}
							}
						}else{
							tableNum = dmStrategyPO.dmTargetTablePOList.length;
							for(var i = 0; i < tableNum; i++){
								columnsRelationsIsOK.push(1);
							}
							var j;
							for(var i = 0; i < tableNum; i++){
								j = i + 1;
								newTargetTable(dmStrategyPO.dmTargetTablePOList[i], j);
								// 数据库下拉树
								$('input[name="' + targetTableDbLinkId_name + j + '"]').attr("vId",dmStrategyPO.dmTargetTablePOList[i].dbLinkId);
								$('input[name="' + targetTableDbLinkId_name + j + '"]').val(dmStrategyPO.dmTargetTablePOList[i].dbUserName);
								var treeObj = $.fn.zTree.getZTreeObj(targetTableDbLinkIdTree_id + j);
								var parentNode = treeObj.getNodeByParam("id", dmStrategyPO.dmTargetTablePOList[i].dbLinkId, null);
								var node = treeObj.getNodeByParam("name", dmStrategyPO.dmTargetTablePOList[i].dbUserName, parentNode);
								treeObj.selectNode(node, false);
							}
						}
						// if(!isDraft){
						// 	newTargetTable(table, 1);
						// }
						
						// 隐藏显示步骤div
						$('#secondStep').addClass("hidden");
						$('#thirdStep').removeClass("hidden");
						$('.step-ing .st3').addClass('st3On');
						// 隐藏显示底部按钮
						$('#button-add-strategy').addClass("hidden");
					}
				}
			}else{
				setTimeout(function(){$('#srcTableForm').validator('cleanUp')},3000);
			}
			return;
		}
		// 第三步的下一步
		if($('#thirdStep').attr("class").indexOf("hidden") < 0){
			// 判断字段映射是否完成
			// var dbLinkId = $('input[name="dbLinkId"]').attr("vId");
			// queryParam = {dbLinkId:dbLinkId};
			// $.ajax({
   //        		url: webRoot+'common/sysModule/qryInfoByDbLinkId.do',
   //         		async : true,
   //         		type : 'POST',
   //         		data :queryParam
	  //       }).done(function(serverData, textStatus, jqXHR) {
	        	
	  //       	alert(serverData.resultData);
	  //           return false;
	  //      	})
	  //     	 .fail(function() {
	  //           fish.toast('error','网络连接失败');
	  //     	 }).always(function() {
	  //     	 	$.unblockUI();
	  //     	 });

			for(var i = 0; i < columnsRelationsIsOK.length; i++){
				if(columnsRelationsIsOK[i] == 0 || columnsRelationsIsOK[i] == 2){
					fish.toast('warn', '请将字段映射配置完全');
					return;
				}
			}
			$('#targetTableForm').validator({
				timely:0,
				ignore:':hidden'//任何不可见的元素，都不作验证
			});
			// 验证输入值的正确性
			if ($("#targetTableForm").isValid()) {
				if(!getTargetTableFormData()){// 存在相同的目标表
					fish.toast('warn', '存在相同的目标表，请重新配置');
					return;
				}
				for(var k in targetTableIsOKs){
					if(targetTableIsOKs[k].name == onClickStrategyName){
						targetTableIsOKs[k].isOK = 1;
					}
				}
				// $("#" + onClickNodeTid + "_a span.text-danger").remove();
				// var targetTableIsOK = {};
				// targetTableIsOK.tId = onClickNodeTid;
				// targetTableIsOK.isOK = 1;
				// targetTableIsOKs.push(targetTableIsOK);

				// 隐藏显示步骤div
				$('#thirdStep').addClass("hidden");
				$('#fourthStep').removeClass("hidden");
				$('.step-ing .st4').addClass('st4On');
				// 隐藏显示底部按钮
				$('#button-next').addClass("hidden");
				$('#button-add-strategy').removeClass("hidden");
				$('#button-submit').removeClass("hidden");
				if(act == "add"){
					$('#button-save-draft').removeClass("hidden");
				}
				if(actAll != "edit"){
					$('#button-save-draft').removeClass("hidden");
				}
				if(dmStrategyPO.state=='00D'){
					$('#button-save-draft').removeClass("hidden");
				}
			}else{
				setTimeout(function(){$('#targetTableForm').validator('cleanUp')},3000);
			}
			return;	
		}
	});
	
	// 完成提交 按钮事件
	$('#button-submit').bind('click',saveSubmit);
	function saveSubmit(){
		// 获取传到后台的数据
		if(!getPlanFormData()){return;}
		getSrcTableFormData();
		getTargetTableFormData();
		planFormData.isEdit = isEdit;
		// 第一步的完成提交
		if($('#firstStep').attr("class").indexOf("hidden") < 0) {
			if(typeof(oldOperType) != "undefined" && oldOperType != 0 && planFormData.operType == 0){
				isAddBack = true;
//				fish.toast('warn', '还未配置目标表信息，请前往配置');
//				return;
			}else{
				isAddBack = false;
			}
			for(var k in targetTableIsOKs){
				if(targetTableIsOKs[k].isOK == 0){// 目标信息未配置完整
					fish.toast('warn', '还有策略的目标表信息未配置完整，请前往配置');
					return;
				}
			}
			$.blockUI({message : "数据提交中,请稍候..."});
			$.ajax({
				url : webRoot + 'baseconfig/dmplan/addAllStrategy.do',
				type : 'POST',
				async : true,
				data : planFormData
			}).done(function(serverData, textStatus, jqXHR) {
				if(serverData == 0){
					fish.toast('warn', '存在相同的计划名称，请重新输入');
					return;
				}
				if(serverData == -1){
					fish.toast('warn', '该计划下的任务还在执行，请等待任务执行完成或者取消后再做修改');
					return;
				}
				if(serverData == -9){
					fish.toast('warn', '该计划下存在还未配置目标表信息的策略，请前往配置');
					$.unblockUI();
					return;
				}
				// $.blockUI({message : "数据提交中,请稍候..."});
				// $.ajax({
				// 	url : webRoot + 'baseconfig/dmplan/updateDAToA.do',
				// 	type : 'POST',
				// 	async : true,
				// 	data : {dmPlanId: dmPlanId}
				// }).done(function(serverData, textStatus, jqXHR) {
					// 重置字段映射是否配置完成标识
					columnsRelationsIsOK = [];
					planSubmit = false;
					if (serverData.success == false) {
						fish.toast('error', serverData.msg);
						return;
					} else {
						fish.toast('success', '操作成功！');
					}
					return;
				// }).fail(function() {
				// 	fish.toast('error', '网络连接失败！');
				// }).always(function() {
				// 	$.unblockUI();
				// });
			}).fail(function() {
				fish.toast('error', '网络连接失败！');
			}).always(function() {
				$.unblockUI();
			});
		} else {
			// 表单数据
			conditionFormData = $("#conditionForm").form("value");
			if(conditionFormData.archiveMode == "0"){
				if(conditionFormData.selectCondition == null || conditionFormData.selectCondition == ""){
					fish.toast('warn', '请输入归档条件');
					return;
				}
			}
			
			if(oldSelectCondition != "" && conditionFormData.selectCondition != oldSelectCondition){// 归档条件改变了
				scriptVerifyIsOK = false;
				oldSelectCondition = conditionFormData.selectCondition;
			}
			// 脚本验证是否通过
			if(!scriptVerifyIsOK){
				fish.toast('warn', '脚本验证不通过，请重新填写归档条件');
				return;
			}
			if(dmStrategyId != 0 || dmPlanId != 0){// 编辑状态
				planSubmit = true; 
			}
			if(!planSubmit){
				fish.toast('warn', '计划下有未配置完成的策略，请配置完成再提交计划');
				return;
			}
			$('#conditionForm').validator({
				timely:0,
				ignore:':hidden'//任何不可见的元素，都不作验证
			});
			// 验证输入值的正确性
			if ($("#conditionForm").isValid()) {
				for(var k in targetTableIsOKs){
					if(targetTableIsOKs[k].isOK == 0){// 目标信息未配置完整
						fish.toast('warn', '还有策略的目标表信息未配置完整，请点击“继续添加策略”，前往配置');
						return;
					}
				}
				$.blockUI({message : "数据提交中,请稍候..."});
				$.ajax({
					url : webRoot + 'baseconfig/dmplan/addAllOneStrategy.do',
					type : 'POST',
					async : true,
					data : _.extend(planFormData, srcTableFormData, targetTableFormData, conditionFormData)
				}).done(function(serverData, textStatus, jqXHR) {
					if(serverData == 0){
						fish.toast('warn', '存在相同的计划名称，请重新输入');
						return;
					}
					if(serverData == -1){
						fish.toast('warn', '该计划下的任务还在执行，请等待任务执行完成或者取消后再做修改');
						return;
					}
					if (serverData == -9) {
						fish.toast('warn', '该计划下存在还未配置完整信息的策略，请点击 继续添加策略 按钮进行配置');
						$('#button-submit').addClass("hidden");
						$.unblockUI();
						return;
					}
					// $.blockUI({message : "数据提交中,请稍候..."});
					// $.ajax({
					// 	url : webRoot + 'baseconfig/dmstrategy/addAllInfoOfOneStrategy.do',
					// 	type : 'POST',
					// 	async : true,
					// 	data : _.extend(srcTableFormData, targetTableFormData, conditionFormData)
					// }).done(function(serverData, textStatus, jqXHR) {
						// 重置字段映射是否配置完成标识
						columnsRelationsIsOK = [];
						if (serverData.success == false) {
							fish.toast('error', serverData.msg);
							return;
						} else {
							fish.toast('success', '操作成功！');
						}
						// 隐藏显示步骤div
						$('#fourthStep').addClass("hidden");
						$('#fifthStep').removeClass("hidden");
						$('.step-ing .st5').addClass('st5On');
						// 隐藏显示底部按钮
						$('#btm-actBtnGroup').addClass("hidden");
						isAddBack = false;
						planSubmit = false;
					// }).fail(function() {
					// 	fish.toast('error', '网络连接失败！');
					// }).always(function() {
					// 	$.unblockUI();
					// });
				}).fail(function() {
					fish.toast('error', '网络连接失败！');
				}).always(function() {
					$.unblockUI();
				});
			}else{
				setTimeout(function(){$('#conditionForm').validator('cleanUp')},3000);
			}
		}
		return;
	};
	
	// 继续添加计划 按钮事件
	$('#button-add-plan').click(function() {
		if(act == "edit"){
			// 关闭先有界面，打开新的创建计划界面
			var iocpUrl = document.referrer;
			iocpUrl = iocpUrl.substring(0,iocpUrl.indexOf('portal'));
			// 关闭先有界面
			$.ajax({
				url : iocpUrl+'base/sendMessage.do?message=closeUrlqq("'+webRoot+editplanURL+'","'+editplanName+'",'+editplanId+')&channel='+parentMid,
				dataType : "jsonp",
				timeout : 3000,
				jsonpCallback:"jsonData",
				success:function(data){
					// 打开新的创建计划界面
					$.ajax({
						url : iocpUrl+'base/sendMessage.do?message=openUrlqq("'+webRoot+addplanURL+'","'+addplanName+'",'+addplanId+')&channel='+parentMid,
						dataType : "jsonp",
						timeout : 3000,
						jsonpCallback:"jsonData",
						success:function(data){
							$('#draft_success_img').addClass("hidden");
							$('#add_success_img').removeClass("hidden");

							$('#button-plan-grid-draft').addClass("hidden");
							$('#button-plan-grid').removeClass("hidden");
						},
						error:function(){
						}
					});
				},
				error:function(){
				}
			});
		}else{
			// 刷新界面
			window.location.reload();
			// 隐藏显示步骤div
			$('#fifthStep').addClass("hidden");
			$('#firstStep').removeClass("hidden");
			showSubmitOnPlan(planSubmit);
			$('.step-ing li').removeClass('st1On').removeClass('st2On').removeClass('st3On').removeClass('st4On').removeClass('st5On');
			// 隐藏显示底部按钮
			$('#btm-actBtnGroup').removeClass("hidden");
			$('#button-prov').addClass("hidden");
			$('#button-next').addClass("hidden");
			$('#button-add-strategy').addClass("hidden");
			$('#button-submit').addClass("hidden");
		}
		return;
	});
	
	// 查看计划列表 按钮事件
	$('#button-plan-grid').click(function() {
		var iocpUrl = document.referrer;
		iocpUrl = iocpUrl.substring(0,iocpUrl.indexOf('portal'));
		$.ajax({
			url : iocpUrl+'base/sendMessage.do?message=openUrlqq("'+webRoot+editplanURL+'","'+editplanName+'",'+editplanId+')&channel='+parentMid,
			dataType : "jsonp",
			timeout : 3000,
			jsonpCallback:"jsonData",
			success:function(data){
				$('#draft_success_img').addClass("hidden");
				$('#add_success_img').removeClass("hidden");

				$('#button-plan-grid-draft').addClass("hidden");
				$('#button-plan-grid').removeClass("hidden");
			},
			error:function(){
			}
		});
	});

	// 查看草稿箱 按钮事件
	$('#button-plan-grid-draft').click(function() {
		var iocpUrl = document.referrer;
		iocpUrl = iocpUrl.substring(0,iocpUrl.indexOf('portal'));
		$.ajax({
			url : iocpUrl+'base/sendMessage.do?message=openUrlqq("'+webRoot+draftURL+'","'+draftName+'",'+draftId+')&channel='+parentMid,
			dataType : "jsonp",
			timeout : 3000,
			jsonpCallback:"jsonData",
			success:function(data){
				$('#draft_success_img').addClass("hidden");
				$('#add_success_img').removeClass("hidden");

				$('#button-plan-grid-draft').addClass("hidden");
				$('#button-plan-grid').removeClass("hidden");
			},
			error:function(){
			}
		});
	});
	
	// 继续添加策略 按钮事件
	$('#button-add-strategy').click(function() {
		// 脚本验证是否通过
		if(!scriptVerifyIsOK){
			fish.toast('warn', '脚本验证不通过，请重新填写归档条件');
			return;
		}
		$('#conditionForm').validator({
			timely:0,
			ignore:':hidden'//任何不可见的元素，都不作验证
		});
		// 验证输入值的正确性
		if ($("#conditionForm").isValid()) {
			// 如果是新增，则先把该策略保存成草稿
			// 如果是编辑，则不做数据的提交
			if(act == "add" || isSearchTable){
				// 表单数据-计划信息
				getPlanFormData();
				$.blockUI({message : "正在保存策略信息,请稍候..."});
				$.ajax({
					url : webRoot + 'baseconfig/dmplan/addOfDraft.do',
					type : 'POST',
					async : true,
					data : _.extend(planFormData, srcTableFormData, targetTableFormData, conditionFormData)
				}).done(function(serverData, textStatus, jqXHR) {
					if(serverData == 0){
						fish.toast('warn', '存在相同的计划名称，请重新输入');
						return;
					}
					// // 表单数据-源数据信息-归档条件
					// conditionFormData = $("#conditionForm").form("value");
					// $.blockUI({message : "数据提交中,请稍候..."});
					// $.ajax({
					// 	url : webRoot + 'baseconfig/dmstrategy/addForDraftWithOKAtFourthStep.do',
					// 	type : 'POST',
					// 	async : true,
					// 	data : _.extend(srcTableFormData, targetTableFormData, conditionFormData)
					// }).done(function(serverData, textStatus, jqXHR) {
						fish.toast('success', '策略已保存到草稿箱，请继续添加策略！');
						// 重置字段映射是否配置完成标识
						columnsRelationsIsOK = [];
						scriptVerifyIsOK = false;
						dmStrategyId = 0;
						dmTargetTablePOList = [];
						// 清空第二步的表单信息
						resetSrcTableForm();
						// 清空第三步的表单信息
						resetTargetTableForm();
						// 清空第四步的表单信息
						$('#conditionForm textarea').val('');
						// 显示计划界面的完成提交按钮
						planSubmit = true;
						// 隐藏显示步骤div
						$('#fourthStep').addClass("hidden");
						$('#fifthStep').addClass("hidden");
						$('#firstStep').removeClass("hidden");
						showSubmitOnPlan(planSubmit);
						$('.step-ing li').removeClass('st1On').removeClass('st2On').removeClass('st3On').removeClass('st4On').removeClass('st5On');
						// 隐藏显示底部按钮
						$('#btm-actBtnGroup').removeClass("hidden");
						$('#button-prov').addClass("hidden");
						$('#button-next').addClass("hidden");
						$('#button-add-strategy').addClass("hidden");
						$('#button-save-draft').addClass("hidden");
						planSubmit = false;
						if(isAddBack){
							var targetTableIsOK = {};
							targetTableIsOK.name = jQuery.parseJSON(srcTableFormData.tableName)[0].value;
							targetTableIsOK.isOK = 1;
							targetTableIsOKs.push(targetTableIsOK);
						}
						$.fn.zTree.init($("#tree"), setting(dmPlanId));
					// }).fail(function() {
					// 	fish.toast('error', '网络连接失败！');
					// }).always(function() {
					// 	$.unblockUI();
					// });
				}).fail(function() {
					fish.toast('error', '网络连接失败！');
				}).always(function() {
					$.unblockUI();
				});
			}else{// 如果是编辑，则不做数据的提交
				columnsRelationsIsOK = [];
				scriptVerifyIsOK = false;
				dmStrategyId = 0;
				dmTargetTablePOList = [];
				// 清空第二步的表单信息
				resetSrcTableForm();
				// 清空第三步的表单信息
				resetTargetTableForm();
				// 清空第四步的表单信息
				$('#conditionForm textarea').val('');
				$.fn.zTree.init($("#tree"), setting(dmPlanId));
				// 显示计划界面的完成提交按钮
				planSubmit = true;
				// 隐藏显示步骤div
				$('#fourthStep').addClass("hidden");
				$('#fifthStep').addClass("hidden");
				$('#firstStep').removeClass("hidden");
				showSubmitOnPlan(planSubmit);
				$('.step-ing li').removeClass('st1On').removeClass('st2On').removeClass('st3On').removeClass('st4On').removeClass('st5On');
				// 隐藏显示底部按钮
				$('#btm-actBtnGroup').removeClass("hidden");
				$('#button-prov').addClass("hidden");
				$('#button-next').addClass("hidden");
				$('#button-add-strategy').addClass("hidden");
				$('#button-save-draft').addClass("hidden");
				planSubmit = false;
			}
		}else{
			setTimeout(function(){$('#conditionForm').validator('cleanUp')},3000);
		}
		return;
	});

	showSubmitOnPlan(planSubmit);
    // showSaveDraft();
});

// 数据库下拉树 绑定
function bindDbLinkTree(treeId, commboxId, inputName, isTarget){
	var setting = {
			async: {
				enable: true,
				contentType: "application/json",
				url: webRoot + 'common/dbInfo/queryAllForTree.do',
				type: 'post'
			},
			view: {
				dblClickExpand:false,
				selectedMulti: false //如果为true,按住ctrl可以多选，false为单选 
			},
			data: {
				simpleData: {
					enable: true,
					idKey: "id",
					pIdKey: "pId",
					rootPId: 0
				}
			},
			callback: {
				onClick: dbLinkIdonClick
			}
		};
		
	var tree = $.fn.zTree.init($("#" + treeId), setting);
	var treeObj = $.fn.zTree.getZTreeObj(treeId);
	function dbLinkIdonClick(){
		nodes = tree.getSelectedNodes();
		if(nodes[0].open){return;}
		var dbLinkIdInput = $('input[name="' + inputName + '"]');
		if(!isTarget){
			if(nodes[0].id != parseInt(dbLinkIdInput.attr("myId"))){
				resetRefTableInfo($('.database-treecombo').index(dbLinkIdInput)+1);
			}
			dbLinkIdInput.attr("myId",nodes[0].id);
		}
		// 设置控件的其他属性：vId，为真正的value
		dbLinkIdInput.attr("vId",nodes[0].pId).val(nodes[0].name);
		hidedbLinkIdTree();
	};
	//下拉树相对位置，随着窗口联动
	function dbLinkIdTreePos(){
		 	var inputObj = $('input[name="' + inputName + '"]');
		var	inputObjOffSet = $('input[name="' + inputName + '"]').offset();
		if(inputObjOffSet == undefined){
			return;
		}
        var $treePs = $("#" + commboxId).css({left:inputObjOffSet.left + "px", top:inputObjOffSet.top + inputObj.outerHeight() + "px",width:inputObj.outerWidth() + "px",'z-index':9999});
        return $treePs;
        }
	$('input[name="' + inputName + '"]').click(function(){
		dbLinkIdTreePos().slideDown("fast");
    	$(window).resize(function(){
			dbLinkIdTreePos();
    	});
		$("body").bind("mousedown", onBodyDownDbLink);
	});
	function onBodyDownDbLink(event) {
		if (!(event.target.name == inputName || event.target.id == commboxId || $(event.target).parents("#" + commboxId).length>0)) {
			hidedbLinkIdTree();
		}
	};
	function hidedbLinkIdTree(){
		$("#" + commboxId).fadeOut("fast");
		$("body").unbind("mousedown", onBodyDownDbLink);
	};
}

// 第一步是否出现“完成提交”按钮
function showSubmitOnPlan(planSubmit){
	if(act == "edit"){
//		$('#button-submit').removeClass("hidden");
//		scriptVerifyIsOK = true;
//		return;
		if(planSubmit){
			$('#button-submit').removeClass("hidden");
			scriptVerifyIsOK = true;
		}else{
			$('#button-submit').addClass("hidden");
		}
	}
//	if(planSubmit){
//		$('#button-submit').removeClass("hidden");
//		scriptVerifyIsOK = true;
//	}else{
//		$('#button-submit').addClass("hidden");
//	}
}

// 源数据从表配置删除tr
function getDel(td, isPK){
	if(isPK == 1){// 是主表的主键，不能删除
		fish.toast('warn', '不能删除与主表主键的对应关系');
		return;
	}
	var subTableId = $(td).parent().parent().parent().attr("id");
	var columnsTableId = $(td).parent().attr("id");
	var allTableNum = $('#'+ subTableId +' tr').length;// 总的tr数
	var columnsTableNum = $('#'+ columnsTableId +' tr').length-1;// 字段关系的个数
	var subTableNum = allTableNum - columnsTableNum;
	
	if(subTableId == 'sub_table'){//从表table
		if(subTableNum == 2){
			fish.toast('warn', '不能删除');
		}else{
			// 删除从表索引
			delete diiPOList_sub[rowIndex];
			var $tr = $(td).parent();
			var rowIndex = $tr.parent().children().index($tr);
			removeRefTableInfo(rowIndex);
			$(td).parent().remove();
			delSubTableIds.push($tr.find('input')[1].value);
		}
	}else{//主从表字段关系table
		if(allTableNum == 1){
			fish.toast('warn', '不能删除');
		}else{
			$(td).parent().remove();
		}
	}
};
// rowIndex:第几行目标数据
function resetRefTableInfo(rowIndex){
	if(targetColMaps.length == 0)return;
	targetColMaps[rowIndex] = false;
	if(columnsRelationsIsOK[rowIndex] == 2){
		columnsRelationsIsOK[rowIndex] = 2;
	}else{
		columnsRelationsIsOK[rowIndex] = 0;
	}
}
function removeRefTableInfo(rowIndex){
	if(targetColMaps.length==0)return;
	delete targetColMaps[rowIndex];
	delete columnsRelationsIsOK[rowIndex];
	var temp = [];
	for(var k in targetColMaps){
		temp.push(targetColMaps[k]);
	}
	targetColMaps = temp;
	var temp1 = [];
	for(var k in columnsRelationsIsOK){
		temp1.push(columnsRelationsIsOK[k]);
	}
	columnsRelationsIsOK = temp1;
	$('#targetTable tr:eq('+ rowIndex +')').remove();
	tableNum = tableNum - 1;
}

function subTableIsOKFunc(subTables){
	subTableIsOK = true;
	for(var k in subTables){
		if(subTables[k].isDelete == 1){// 删除的从表
			continue;
		}
		if(subTables[k].relMapCols == undefined){
			subTableIsOK = false;
		}
	}
}

// function showSaveDraft(){
// 	if(act == "edit"){
// 		$('#button-save-Draft').addClass("hidden");
// 	}else{
// 		$('#button-save-Draft').removeClass("hidden");
// 	}
// }